package com.quad.innovators.salesease.model.form.base;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;

@Schema(description = "产品对象")
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class ProductForm {

    @Schema(description = "产品code")
    private String code;

    @Schema(description = "产品名称")
    @NotBlank(message = "仓库名称不能为空")
    private String name;

    @Schema(description = "产品品牌方全称")
    private String fullName;

    @Schema(description = "品牌方编码")
    @NotBlank(message = "品牌方编码不能为空")
    private String brandProviderCode;

    @Schema(description = "产品国际编码")
    private String productUniqueCode;

    @Schema(description = "产品规格数字")
    private Integer specificationNumber;

    @Schema(description = "产品规格单位")
    private String specificationName;

    @Schema(description = "包装规格数字")
    private Integer packingNumber;

    @Schema(description = "包装规格单位")
    private String packingName;

    @Schema(description = "保质期")
    private Integer shelfLife;

    @Schema(description = "保质期单位编码")
    private String shelfLifeUnit;

    @Schema(description = "原进货价")
    @Min(value = 0, message = "价格不能小于0")
    private Long originalPrice;

    @Schema(description = "实际进货价")
    @Min(value = 0, message = "价格不能小于0")
    private Long actualPrice;

    @Schema(description = "供货价")
    @Min(value = 0, message = "价格不能小于0")
    private Long supplyPrice;

    @Schema(description = "备注")
    private String description;

}